﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace bits
{
    class Program
    {
        static void Main(string[] args)
        {
            //Вывод единичного бита через деление
           // for (int a = Int32.Parse(Console.ReadLine()); a > 0; a = a / 2)
         // {
            //    int bit = a % 2;

              //  Console.Write(bit);
                
           // }
           // Console.ReadLine();
            
                    Console.Write("Введите число:");
                    int i = ReadIntfromConsole();
                    Console.WriteLine("Введённое число в двоичном виде: "+ Convert.ToString(i, 2));
                    int c = 0;
                    while (i != 0)
                    {
                        c += i & 1;
                        i >>= 1;
                        
                    }
                    Console.WriteLine("Количество единичных битов введённого числа = {0}", c);
                    Console.ReadLine();
        }
        static int ReadIntfromConsole()
        { 
            int i = 0;
        while (true)
            {
                try
                {
                    i = Int32.Parse(Console.ReadLine());
                    return i;
                }
                catch
                {
                    Console.WriteLine("Введите верное значение!");
                }
            }
        }
        
            
           
        
    }
}
